package com.newshub.logging.annotation;

import java.lang.annotation.*;

/**
 * 异常日志注解
 * 用于记录方法执行过程中的异常
 */
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface ExceptionLog {
    
    /**
     * 是否重新抛出异常
     */
    boolean rethrow() default true;
    
    /**
     * 忽略的异常类型，这些异常不会记录
     */
    Class<? extends Throwable>[] ignoreExceptions() default {};
    
    /**
     * 是否记录异常堆栈
     */
    boolean recordStackTrace() default true;
    
    /**
     * 是否记录方法参数
     */
    boolean recordParams() default true;
}
